জাভাস্ক্রিপ্টে Set হল এমন একটি ডেটা স্ট্রাকচার যা অদ্বিতীয় (unique) উপাদানগুলো সংরক্ষণ করে। Set-এ কোনো একটি উপাদান একবারের বেশি উপস্থিত থাকতে পারে না। এটি বিভিন্ন ধরনের ডেটা যেমন স্ট্রিং, নাম্বার, অবজেক্ট ইত্যাদি ধারণ করতে পারে। যদিও Set সাধারণত অ্যারে বা প্রাথমিক ডেটা টাইপের জন্য ব্যবহৃত হয়, তবে আপনি অবজেক্টকেও Set-এর উপাদান হিসেবে ব্যবহার করতে পারেন।
এটি ইটারেবল, অর্থাৎ for...of
লুপের মাধ্যমে এর উপাদানগুলো পুনরাবৃত্তি করা সম্ভব।
for...of
লুপ, forEach()
মেথড, অথবা অন্যান্য ইটারেটর মেথডের মাধ্যমে Set-এর উপাদান পুনরাবৃত্তি করা যায়।আপনি অবজেক্টকে Set-এর উপাদান হিসেবে সংরক্ষণ করতে পারেন, কিন্তু কিছু পয়েন্ট মনে রাখা প্রয়োজন:
const person1 = { name: "Alice", age: 25 };
const person2 = { name: "Bob", age: 30 };
const person3 = { name: "Charlie", age: 35 };
const set = new Set();
// অবজেক্ট যোগ করা
set.add(person1);
set.add(person2);
set.add(person3);
// একই অবজেক্ট আবার যোগ করা
set.add(person1); // Set-এ এটি পুনরায় যোগ হবে না কারণ এটি পূর্বেই যোগ করা হয়েছে
// Set-এর উপাদানগুলো প্রদর্শন করা
for (let person of set) {
console.log(person.name);
}
আউটপুট:
Alice
Bob
Charlie
এখানে, person1
অবজেক্ট প্রথমবার যোগ করার পর সেটি আবার একই person1
রেফারেন্সের সাথে যোগ করার চেষ্টা করা হয়। তবে, সেটি Set-এ পুনরায় যোগ হয় না কারণ Set-এ একে অপরের সাথে তুলনা করে এটি একটি ইউনিক রেফারেন্স হিসেবেই থাকে।
Set-এর কিছু সাধারণ মেথড রয়েছে যা ব্যবহার করে অবজেক্টসহ বিভিন্ন ডেটা পরিচালনা করা যায়।
add(value)
এই মেথড একটি নতুন উপাদান Set-এ যোগ করে।
const set = new Set();
set.add({ name: "John", age: 22 });
set.add({ name: "Jane", age: 28 });
has(value)
এই মেথডটি পরীক্ষা করে যে, Set-এ কোনো নির্দিষ্ট উপাদান আছে কি না।
const set = new Set();
const person = { name: "John", age: 22 };
set.add(person);
console.log(set.has(person)); // আউটপুট: true
delete(value)
এই মেথডটি Set থেকে একটি নির্দিষ্ট উপাদান মুছে ফেলে।
set.delete(person); // 'person' অবজেক্টটি Set থেকে মুছে ফেলা হবে
lear()
এই মেথডটি Set-এর সব উপাদান মুছে ফেলে।
set.clear(); // সব উপাদান মুছে ফেলবে
size
এই প্রপার্টি Set-এ মোট উপাদানের সংখ্যা জানায়।
console.log(set.size); // Set-এ মোট উপাদান সংখ্যা
এটি লক্ষ্য করা গুরুত্বপূর্ণ যে, Set-এ যখন অবজেক্ট যোগ করা হয়, তখন অবজেক্টের রেফারেন্স মূল্যায়ন করা হয়, এবং একই রেফারেন্সের দুটি অবজেক্ট একবারের বেশি Set-এ থাকলে, এটি দুটি আলাদা উপাদান হিসেবে গণ্য হবে।
const person1 = { name: "Alice", age: 25 };
const person2 = person1; // person1-এর রেফারেন্স কপি করা হচ্ছে
const set = new Set();
set.add(person1);
set.add(person2); // এটি person1-এর মতোই রেফারেন্স, তাই Set-এ এটি ইতিমধ্যেই উপস্থিত
console.log(set.size); // আউটপুট: 1
এখানে, person2
আসলে person1
এর রেফারেন্স, তাই এটি Set-এ পুনরায় যোগ হবে না এবং set.size
এর আউটপুট হবে ১।
জাভাস্ক্রিপ্টের Set একটি শক্তিশালী ডেটা স্ট্রাকচার যা শুধুমাত্র ইউনিক উপাদান সংরক্ষণ করে এবং অবজেক্টগুলোকেও এতে রাখা সম্ভব। তবে, Set রেফারেন্সের ভিত্তিতে উপাদানগুলো তুলনা করে, তাই একই রেফারেন্সের দুটি অবজেক্ট Set-এ একাধিকবার থাকতে পারে না। Set-এর বিভিন্ন মেথড যেমন add()
, has()
, delete()
, এবং clear()
ব্যবহারের মাধ্যমে এটি বিভিন্ন ডেটা পরিচালনা করা যায়। Set, ইটারেবল হওয়ায় এটি সহজে পুনরাবৃত্তি করা যায়, যা কোড লেখার সময় আরও কার্যকরী হতে সহায়ক।
common.read_more